/**
    算法描述：每次操作就是两种可能，push或者pop。
        因此可以通过二叉树的方式进行构建，然后
        dfs遍历这棵二叉树。直到栈顶指针等于-1，
        这样就可以记录一种可能性。
    核心问题：常规的DFS问题
    解决所需数据结构+算法：栈 + DFS
**/
#include<iostream>
using namespace std;

int n, top = -1, a[20] = {0};

int main() {
    cin >> n;
    dfs();
    return 0;
}